iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
佛心分享-IT 人自學之術

OpwnCV影像處理新手村系列 第 18

🚀 DAY 18:影像直方圖與直方圖均衡化(Histogram & Histogram Equalization)

  • 分享至 

  • xImage
  •  

影像直方圖是一種統計方法,用來描述影像中像素亮度的分布情況,能協助分析影像曝光、對比度與細節。
直方圖均衡化則能增強影像的對比度,使暗處更清晰、亮處不易過曝,提升整體視覺效果。


🖼 測試圖片準備

請準備一張圖片 image.jpg,並放在與程式同一資料夾。

import cv2

img = cv2.imread('image.jpg', 0)  # 灰階讀取
cv2.imshow('Gray Image', img)

# 將以下程式碼放在所有顯示語句的最後面
cv2.waitKey()
cv2.destroyAllWindows()

https://ithelp.ithome.com.tw/upload/images/20250920/20129482NJUOoc1WFZ.png


🔹 1. 計算灰階直方圖 (cv2.calcHist)


# 計算灰階直方圖
hist = cv2.calcHist([img], [0], None, [256], [0,256])
print("直方圖前 10 筆數據:", hist[:10].T)

輸出結果

直方圖前 10 筆數據: [[ 0.  1.  0.  1.  0.  1.  5.  7. 10. 22.]]

📌 參數說明

cv2.calcHist(images, channels, mask, histSize, ranges)

  • images → 輸入影像
  • channels → [0] 表示灰階
  • mask → None 表示整張圖片
  • histSize → [256] 表示分成 256 個灰階級別
  • ranges → [0,256] 表示灰階範圍

🔹 2. 直方圖均衡化(cv2.equalizeHist)


# 直方圖均衡化
equalized = cv2.equalizeHist(img)

# 顯示結果
cv2.imshow("Original", img)
cv2.imshow("Equalized", equalized)

效果:原本暗的圖片會變得更清晰,細節與對比度提升。

https://ithelp.ithome.com.tw/upload/images/20250920/20129482XY4nIwgkrX.png


🔹 3. 彩色圖片的直方圖均衡化(YCrCb 色彩空間)


# 讀取彩色影像
img_color = cv2.imread('image.jpg')


# 轉換到 YCrCb 色彩空間
ycrcb = cv2.cvtColor(img_color, cv2.COLOR_BGR2YCrCb)
# 只均衡化亮度通道 Y
ycrcb[:, :, 0] = cv2.equalizeHist(ycrcb[:, :, 0])
# 轉回 BGR
equalized_color = cv2.cvtColor(ycrcb, cv2.COLOR_YCrCb2BGR)
cv2.imshow("Original Color", img_color)
cv2.imshow("Equalized Color", equalized_color)

📌 功能

  • 增強對比度,特別適合亮度不足或光照不均的圖片。
  • 只針對亮度通道均衡化,可避免色彩失真。

https://ithelp.ithome.com.tw/upload/images/20250920/20129482os9KSJ2wdP.png


📊 方法比較

方法 說明
calcHist 計算影像的直方圖分布,分析亮度結構
equalizeHist 灰階圖片直方圖均衡化,提升對比度
YCrCb + equalizeHist 只針對亮度通道均衡化,保留色彩資訊,避免色偏

比較:灰階均衡化適合單色影像,彩色均衡化建議只處理亮度通道,能有效提升細節又不影響色彩。


📖 今日結語

直方圖能幫助我們了解影像的亮度分布,而直方圖均衡化則能有效改善影像的對比度與細節。
在彩色圖片中,通常只針對亮度通道進行均衡化,避免破壞原有色彩。這些技術在醫學影像、監控、低光源場景等應用中非常實用。


上一篇
🚀 DAY 17:影像輪廓與形狀分析(Contours & Shape Analysis)
下一篇
🚀 DAY 19:直方圖反向投影(Histogram Backprojection)
系列文
OpwnCV影像處理新手村22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言